package com.project.mq.common;

import com.project.mq.mqserver.core.BasicProperties;

import java.io.IOException;

/**
 * 只是一个单纯的函数式接口(回调函数),收到消息之后,要处理消息时调用的方法
 */
@FunctionalInterface
public interface Consumer {
    // consumerTag 消费者标识，后面使用 channelId 填充。
    // Delivery 的意思是“投递”，这个方法预期是在每次服务器收到消息之后，来调用。
    // 通过这个方法把消息推送给对应的消费者。
    //该设定参考RabbitMQ
    void handleDelivery(String consumerTag, BasicProperties properties, byte[] body) throws MqException, IOException;
}
